why do we need default constructor in java